<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:Object3D] &rarr;

		<h1>[name]</h1>

		<p class="desc">
			Class representing triangular
			[link:https://en.wikipedia.org/wiki/Polygon_mesh polygon mesh] based
			objects. Also serves as a base for other classes such as
			[page:SkinnedMesh].
		</p>

		<h2>Code Example</h2>

		<code>
		const geometry = new THREE.BoxGeometry( 1, 1, 1 );
		const material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
		const mesh = new THREE.Mesh( geometry, material );
		scene.add( mesh );
		</code>

		<h2>Constructor</h2>

		<h3>
			[name]( [param:BufferGeometry geometry], [param:Material material] )
		</h3>
		<p>
			[page:BufferGeometry geometry] — (optional) an instance of
			[page:BufferGeometry]. Default is a new [page:BufferGeometry].<br />
			[page:Material material] — (optional) a single or an array of
			[page:Material]. Default is a new [page:MeshBasicMaterial]
		</p>

		<h2>Properties</h2>
		<p>See the base [page:Object3D] class for common properties.</p>

		<h3>[property:BufferGeometry geometry]</h3>
		<p>
			An instance of [page:BufferGeometry] (or derived classes), defining the
			object's structure.
		</p>

		<h3>[property:Boolean isMesh]</h3>
		<p>Read-only flag to check if a given object is of type [name].</p>

		<h3>[property:Material material]</h3>
		<p>
			An instance of material derived from the [page:Material] base class or an
			array of materials, defining the object's appearance. Default is a
			[page:MeshBasicMaterial].
		</p>

		<h3>[property:Array morphTargetInfluences]</h3>
		<p>
			An array of weights typically from 0-1 that specify how much of the morph
			is applied. Undefined by default, but reset to a blank array by
			[page:Mesh.updateMorphTargets updateMorphTargets].
		</p>

		<h3>[property:Object morphTargetDictionary]</h3>
		<p>
			A dictionary of morphTargets based on the morphTarget.name property.
			Undefined by default, but rebuilt [page:Mesh.updateMorphTargets updateMorphTargets].
		</p>

		<h2>Methods</h2>
		<p>See the base [page:Object3D] class for common methods.</p>

		<h3>
			[method:Vector3 getVertexPosition]( [param:Integer index], [param:Vector3 target] )
		</h3>
		<p>
			Get the local-space position of the vertex at the given index, taking into
			account the current animation state of both morph targets and skinning.
		</p>

		<h3>
			[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )
		</h3>
		<p>
			Get intersections between a casted ray and this mesh.
			[page:Raycaster.intersectObject] will call this method, but the results
			are not ordered.
		</p>

		<h3>[method:undefined updateMorphTargets]()</h3>
		<p>
			Updates the morphTargets to have no influence on the object. Resets the
			[page:Mesh.morphTargetInfluences morphTargetInfluences] and
			[page:Mesh.morphTargetDictionary morphTargetDictionary] properties.
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
